<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>颜色分类</title>
</head>

<body>
  <script>
    /*
    给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ，原地对它们进行排序，使得相同颜色的元素相邻，并按照红色、白色、蓝色顺序排列。
    我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
    必须在不使用库内置的 sort 函数的情况下解决这个问题。
    */
    var arr = [2, 0, 2, 1, 1, 1, 1, 1, 0]
    //外层循环，控制趟数，每一次找到一个最大值
    for (var i = 0; i < arr.length - 1; i++) {
      // 内层循环,控制比较的次数，并且判断两个数的大小
      for (var j = 0; j < arr.length - 1 - i; j++) {
        // 如果前面的数大，放到后面(当然是从小到大的冒泡排序)
        if (arr[j] > arr[j + 1]) {
          var temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp;
        }
      }

    }
    console.log(arr);//[2, 4, 5, 12, 31, 32, 45, 52, 78, 89]

  </script>
</body>

</html>